import java.util.HashMap;

/*
 * @lc app=leetcode.cn id=290 lang=java
 *
 * [290] 单词规律
 */

// @lc code=start
class Solution {
    
    //实际上完全不需要mp2来存char的信息，另外temp加字符的方式比较耗时
    //改成下面这种方式。
    public boolean wordPattern(String pattern, String s) {
        HashMap<String,Character> mp = new HashMap<>();
        Set<Character> st = new HashSet<>();
        String[] ns = s.split(" ");//用split来切分获得单词比较方便
        String ans ="";
        for(int i=0 ;i<ns.length;i++){
            if(mp.containsKey(ns[i])) ans+=mp.get(ns[i]);
            else if(i>=pattern.length() || st.contains(pattern.charAt(i))) return false;
            else {
                mp.put(ns[i],pattern.charAt(i));//单词-字母 Put进去
                st.add(pattern.charAt(i));//说明之前没有这个字母。
                ans+= pattern.charAt(i);
            }
        }
        return ans.equals(pattern);
    }

}
// @lc code=end

